home *** CD-ROM | disk | FTP | other *** search
- Chapter 5
-
- First Meg
-
- This chapter covers the information you need to know to make
- best use of your first megabyte of memory. For DOS PCs, the first
- megabyte of memory is very important. It is the area in which DOS
- programs are run and the area in which your PC hardware is
- controlled.
-
- There are two areas of memory in your PC's first megabyte ~dash~
- conventional and high memory. Conventional memory is the
- contiguous memory, usually located in the memory addresses
- between 0K and 640K, that is used to run DOS programs.
- Conventional memory will be smaller if your PC has less than 640K
- of memory. It may be possible to increase conventional memory by
- 64K or 96K ~dash~ if the contiguous memory area immediately
- following the 640K is available.
-
- High memory is the memory between the top of conventional memory
- and 1024K (1MB). This area, like conventional memory, can be
- addressed by DOS. However, this area has been traditionally
- reserved by IBM for use by the system ~dash~ for the ROM BIOS
- and hardware devices. As DOS programs have become larger, and as
- you have need to run several programs at once, high memory has
- increased in importance. The reason is that there are often more
- memory addresses reserved than are actually being used. So there
- are precious available memory addresses, usable by DOS, ripe for
- the picking!
-
- Note that your PC may not have actual physical memory for each
- memory address in high memory. This physical memory may be
- provided by the hardware configured for your PC ~dash~ for
- example, memory provided by the ROM BIOS, by video adapters, or
- by an expanded memory manager.
-
- Because high memory has specific addresses reserved for adapters
- and the system ROM, any memory addresses available may not be
- contiguous. Since all DOS programs require that the memory
- addresses in which they run be contiguous, high memory can not be
- used to run large programs. Rather, unused or available addresses
- in high memory must be used to run programs that fit within the
- available block of high memory.
-
- To use available high memory addresses (other than video
- addresses) does require either EEMS or EMS 4 expanded memory
- hardware capable of mapping into conventional memory, or an 80386
- processor with an EMS 4 expanded memory manager. In both cases,
- the memory manager can map 16K contiguous blocks of expanded
- memory into unused 16K blocks of high memory.
-
- The benefit of this capablity to you is that you can run network
- drivers, mouse drivers, small TSRs, and even parts of DOS in high
- memory ~dash~ thus leaving conventional memory for your large DOS
- programs.
-
- ~Subhead~ First Meg Overview (FO)
-
- First Meg Overview shows you a map of the memory areas used in
- your PC's first megabyte of address space.
-
- The map has two sections: the area known as conventional memory
- (usually the first 640K of memory) and the area between
- conventional memory and the first megabyte boundary, known as
- high memory. This is nominally for hardware adapters and BIOS
- ROM.
-
- ~Heading~ Introduction to the First Meg Map
-
- First Meg Overview shows you how you are currently using memory.
- With this, you can:
-
- ~Item~ Find out the size of the largest program you can run in
- conventional memory (Available),
-
- ~Item~ Find out how much of conventional memory is being used by
- COMMAND.COM and TSRs (Program Area),
-
- ~Item~ Determine if there is high memory, designated as Unused,
- where Manifest finds no ROMS or mappable memory~dash~but could be
- mapped with memory. You do need EMS 4 or EEMS memory to use this
- memory.
-
- ~Item~ See what high memory is available to be mapped by programs
- using EMS 4.0 or EEMS. These blocks of memory (always a multiple
- of 16K in size) are designated as mappable, or as the Page Frame.
-
- ~Item~ See what memory, designated as High RAM, is usable by
- QEMM's or QRAM's LOADHI to load drivers, TSRs or parts of DOS in
- high memory.
-
- ~Heading~ Understanding the First Meg Map
-
- To better understand the information reported in First Meg
- Overview, familiarity with some of the other Manifest screens may
- be helpful. For example:
-
- ~Item~ memory reported for DOS includes that of the DOS kernel
- plus the memory added by statements in CONFIG.SYS. (Refer to DOS
- Overview for details),
-
- ~Item~ memory reported as Program Area consists of memory used by
- COMMAND.COM and any TSRs not loaded high. (Refer to First Meg
- Programs),
-
- ~Item~ memory reported as Video Text/Graphics or Video ROM shows
- the memory devoted to and/or used by your video adapter (See
- System Adapters),
-
- ~Item~ memory reported as High Ram may have programs loaded
- there. (See First Meg Programs)
-
- ~Item~ memory reported as mappable is under control of the
- expanded memory manager. (See Expanded Memory Chapter)
-
- ~Item~ information on this screen can show you the potential
- benefits of EMS 4 or EEMS memory if you currently have none, or
- help you optimize your use of EMS 4 or EEMS memory if you do.
- Unfamiliar terms used here are more fully defined in the Expanded
- and QEMM chapters.
-
- Manifest examines memory and determines how each area has been
- used. An area that it cannot assign a use for is labeled as
- Unused. Typically, these areas could be used by an expanded
- memory board and manager that had the necessary hardware and
- software capabilities, and could then be turned into High RAM
- with Quarterdeck's QRAM or QEMM.
-
- ~Heading~ Hints for DESQview Users
-
- DESQview users, running Manifest in a window, will see
- information related to the configuration of the window's memory,
- not the configuration of the PC's memory. This means that the
- memory marked as Available is the amount of memory available for
- use by programs running in the window, not by all programs on the
- PC.
-
- Secondly, DESQview makes it so that all memory which is not
- usable by programs in the window will not be included in the
- window's known memory area. This makes Manifest report that
- conventional memory ends not at the "real" end of conventional
- memory, but rather at the end of the memory available to the
- DESQview window.
-
- Finally, all areas marked as Mappable outside of DESQview will
- be hidden from programs running in DESQview, and will be
- designated by Manifest as Unused.
-
- ~Subhead~ First Meg Programs (FR)
-
- First Meg Programs shows you a map of what is loaded into memory
- (excluding DOS and device drivers), and the areas of memory
- available for use. If you are using Quarterdeck's QRAM,
- QEMM-50/60, or QEMM-386, there may be a double line in your
- display. If there is, it indicates the point where conventional
- memory ends, and high memory begins.
-
- If present, the program map of high memory shows where memory
- resident programs, drivers (i.e. network and mouse drivers) and
- DOS FILES, BUFFERS, FCBS, and LASTDRIVE have been loaded by
- QEMM's or QRAM's LOADHI. It also shows you available memory.
-
- You use this screen to:
-
- ~Item~ see what memory your programs are using. Often you will
- see a separate area for the program's environment, and a separate
- area allocated for the program's data.
-
- ~Item~ identify programs, currently loaded in conventional
- memory, that could be loaded in high memory.
-
- ~Subhead~ Memory Accounting
-
- If Manifest cannot determine the name of your program or device,
- it gives it a name. The name given is the memory address where
- the program is running.
-
- Manifest excludes itself from its reports. Note that nowhere is
- there reference to Manifest in the program map. The report's
- purpose is to give you information about your programs as you
- normally use them. Manifest will report itself if it is left
- resident in memory.
-
- Memory Fragments: Every program, when loaded, is given an area
- of memory known as an environment. These areas are shown
- separately in this map. When Manifest shows small fragments of
- available high memory, it is often because a program has released
- its environment memory. These areas show up as available, but due
- to their size are not particularly useful.
-
- The high memory shown by Manifest as Available can be used
- either to load more of your TSRs, device drivers, and DOS data
- into high memory or used by DESQview's XDV program to move parts
- of DESQview into high memory.
-
- ~Subhead~ First Meg Interrupts (FI)
-
- First Meg Interrupts presents two detailed views of your PC's
- interrupt vectors. The Interrupt Owners screen lists the
- programs, drivers, and ROMs providing interrupt services,
- followed by the interrupt numbers they service. The Interrupt
- List screen lists the interrupts by their number, giving also the
- name or purpose of the interrupt, its address, and the name of
- the program, driver or ROM providing the service.
-
- These screens only show the most recent program which has the
- vector. Other programs loaded earlier may also be servicing the
- interrupt.
-
- On a color display, program and driver names are displayed in
- cyan, while DOS and ROMS are shown in white.
-
- These screens provide technical information of use to
- programmers and technical support personnel. If you are a non-
- technical user, your ability to relay this information may help
- to resolve some difficulty you are experiencing.
-
- ~Subhead~ Uses of First Meg Interrupts
-
- You use the Interrupt Owners screen to:
-
- ~Item~ determine what programs service interrupts, and which
- interrupts they service,
-
- ~Item~ determine which interrupts are not being serviced (i.e.
- the interrupt address is zero or the address indicates the ROM
- BIOS default interrupt handler), or
-
- ~Item~ with Manifest in TSR mode, help you profile a program's
- interrupt usage.
-
- Programmers may find these interrupt screens helpful:
-
- ~Item~ in determining conflicts among programs trying to provide
- interrupt services,
-
- ~Item~ during debug sessions for locating the routines,
-
- ~Item~ for finding a "safe" interrupt to use, or
-
- ~Item~ as a quick reference to the interrupt services defined.
-
- ~Subhead~ Interrupt List
-
- The Interrupt List consists of sixteen screens that list
- interrupts by their number. The list also shows the name or
- purpose of the interrupt and the address and name of the program
- providing the service.You display this list by pressing the F3
- key when the Interrupt Owners screen is displayed.
-
- You can display any one of the 16 screens by entering Alt-X
- where x is the first digit of the hexadecimal interrupt number.
- For example, Alt-2 will display the screen containing interrupts
- 20 through 2F.
-
- You can use the Interrupt List to:
-
- ~Item~ learn what program is using an interrupt (for example, INT
- 16 if you have keyboard problems), and
-
- ~Item~ check whether the interrupt is in use by another program.
-
- Note: Due to the use of the interrupt vector area of memory as a
- program stack during power up, few programs make use of any of
- the later interrupt numbers available, and the contents of these
- vectors are seldom meaningful. Consequently, Manifest does not
- attempt to identify programs using vectors C0 to FF.
-
- ~Subhead~ First Meg BIOS Data (FB)
-
- First Meg BIOS Data screens present the data area in RAM devoted
- for use by the ROM BIOS.
-
- This BIOS Data Area is an area of conventional memory used by
- the system ROMs for keeping track of the state of the
- system~dash~the keyboard, disk drives and video adapter cards.
- The BIOS data area is 172 bytes of memory located just above the
- interrupt vectors.
-
- Many application programs also reference, and some change, the
- information contained in this memory area.
-
- Experienced PC users may find these screens helpful in a number
- of ways:
-
- ~Item~ as a database reference of the BIOS data structure, and
-
- ~Item~ for quick access to port address values or the installed
- hardware and memory size values.
-
- Experimenters and students may find these screens helpful in
- confirming the effect of DOS and BIOS calls.
-
- ~Subhead~ Technical Hints
-
- PC's with an extended BIOS Segment. Manifest reports the
- existence of the Extended BIOS segment at offset 0E. In other
- systems, this location is assigned to a possible fourth parallel
- port. If your computer displays only 639K of conventional memory,
- this is an indication that the computer does have an Extended
- BIOS Segment. IMPORTANT: QEMM-386 and QEMM-50/60 version 5
- automatically relocate this data.
-
- ~Subhead~ Timings (FM)
-
- First Meg Timings provides memory access times for various
- segments of the PC's first megabyte of memory.
-
- The purpose of this display is twofold:
-
- ~Item~ first, to show how fast your computer memory is relative
- to a PC/XT, and
-
- ~Item~ second, to show the relative speeds of different areas of
- memory.
-
- Use this display to:
-
- ~Item~ see the effect of a hardware memory cache, if you have
- one,
-
- ~Item~ determine the effect of your PC's Shadow RAM,
-
- ~Item~ analyze the possible effect of upgrading memory boards or
- chips,
-
- ~Item~ compare the speed of your standard memory with that of any
- ROM or video memory, and
-
- ~Item~ see the effects of QEMM's ROM feature.
-
- ~Subhead~ Timing Insights
-
- Some computers have a hardware feature known as memory cache,
- which can greatly improve the performance by effectively speeding
- up the memory of the PC. A memory cache is extra-fast memory
- which stores recently accessed data so that if it is accessed
- again soon, it will be accessed from the extra-fast memory rather
- than from normal memory. Since much of a computer's activity
- involves accessing the same memory repeatedly, this technique
- causes at least 50% and sometimes well over 90% of the computer's
- memory accesses to be sped up. If your machine has a memory
- cache, then Manifest will report its speed. This timing is the
- most significant one for evaluating your machines's effective
- speed.
-
- Slowest Memory: ROM memory, video adapter memory and other
- adapter memory will usually be the slowest memory. Unanticipated
- variations in any add-on memory you have will show up here.
-
- Variations in Speed: It is normal for your PC's speed to vary up
- to 10% from one reading to the next. As long as the variances
- between ratings is not more than 10%, no problem is indicated.
-
- ~Subhead~ Timing Insights (Continued)
-
- All ROM memory is slow. Because ROMs are usually 8 bit memory,
- ROMs run at the same speed as 8088 memory when running on an
- 8088, half speed when running on a 80286 or SX80386, and slower
- still if you are using an 80386 (an 80386 uses 32 bit memory, and
- 8 bit ROM).
-
- If you are using QEMM-386, you may use QEMM.SYS's ROM switch to
- map your slow ROMs into RAM. If the timings test indicates that
- all but your PC's adapter memory in your 80386 runs at full
- speed, your ROM has already been mapped by the system. Compaq
- computers and others do this.
-